/* FILE : imm.h */
#ifndef _IMM_H
#define _IMM_H

typedef enum _IMECommand {		//IMM send to IME
	//IME_INFO = 0,
	IME_IMM_VERSION = 0,
	IME_INITIALIZE,
	IME_FINALIZE,
	IME_HIDE,
	IME_UPDATE_DISPLAY,
	IME_UPDATE_SCREEN,
	IME_UPDATE_SPOT_LOCATION,
	IME_UPDATE_TRIGGER_PROPERTY,
	IME_PROCESS_IME_EVENT
} IMECommand;

typedef enum _IMMCommand {		//IME send to IMM
	//IMM_VERSION = 0,
	IMM_IME_INFO = 0,
	IMM_OPEN_CONNECTION,
	IMM_CLOSE_CONNECTION,
	IMM_GET_CONNECTION_NUMBER,
	IMM_HAS_PENDING_EVENT,
	IMM_FILTER_EVENT,
	IMM_REGISTER_PROPERTIES,
	IMM_UPDATE_PROPERTY,
	IMM_SEND_IME_EVENT,
	IMM_SEND_KEY_EVENT,
	IMM_COMMIT_STRING,
	IMM_FORWARD_KEY_EVENT,
	IMM_READ_CONFIG,
	IMM_WRITE_CONFIG,
	IMM_LOAD_USER_DATA,
	IMM_FREE_USER_DATA,
	IMM_SAVE_USER_DATA
} IMMCommand;

extern IMM_Helper_Functions imm_helper_functions;

int imm_init(void);

#endif /* _IMM_H */
